/**
 * 对应单体结构的后端
 */

import {fileURLToPath, URL} from 'node:url'
import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'

export default defineConfig({
    plugins: [
        vue(),
        vueDevTools(),
    ],
    resolve: {
        alias: {
            '@': fileURLToPath(new URL('./src', import.meta.url)),
        },
    },
    server: {
        host: '0.0.0.0',
        port: 24510, // 端口号
        // strictPort: true, // 若端口已被占用则会直接退出
        // open: false, // 启动时自动在浏览器中打开应用程序
        proxy: {
            // 可以根据需要添加更多的代理规则
            '/Admin': {
                // 本地调试不带
                target: 'http://localhost:8081/',
                rewrite: (p) => {
                    return p
                }
            },
            '/WebShell': {
                target: 'http://localhost:8081/',
                rewrite: (p) => {
                    return p
                }
            },
            '/documentManager': {
                target: 'http://localhost:8081/',
                rewrite: (p) => {
                    return p
                }
            },
            '/sse': {
                target: 'http://localhost:8081/',
                rewrite: (p) => {
                    return p
                }
            },
            '/WorkFlow': {
                target: 'http://localhost:8081/',
                rewrite: (p) => {
                    return p
                }
            },
            '/staticFiles': {
                target: 'http://localhost:8081/',
                rewrite: (p) => {
                    return p
                }
            },
            // 站管理
            '/WebShell/socket/webShell-connect': {
                target: 'ws://localhost:8081/',
                rewrite: (p) => {
                    return p
                },
                ws: true
            },
            // 代理所有以 /api 开头的请求
            '/nms-workflow': {
                target: 'http://localhost:19161', // 后端地址
                rewrite: (p) => {
                    return p
                }
            }
            // 更多路径的代理配置...
        }
    },
    build: {
        outDir: 'singleApplication-front', // 生成输出的根目录。如果该目录存在，则会在生成之前将其删除。 默认文件夹名称为dist
        target: 'esnext',
        terserOptions: {
            compress: {
                drop_console: true, // 生产环境去掉控制台 console
                drop_debugger: true, // 生产环境去掉控制台 debugger 默认就是true
                dead_code: true, // 删除无法访问的代码 默认就是true
            }
        },
        chunkSizeWarningLimit: 2000, // 调整区块大小警告限制
    }
})